package com.ceair.flight.refund.service;

import com.ceair.flight.refund.dto.external.CreatePnrSegmentDto;
import com.ceair.flight.refund.dto.external.IataInfo;
import com.ceair.muservice.basicdata.dto.airport.AirportDto;
import com.ceair.muservice.basicdata.dto.channel.ChannelManageDto;

import java.util.Map;

/**
 * 共通服务处理
 *
 * @Author ZhuBeiBei
 * @Date: Created in 2019/1/21 10:30
 */
public interface IRefundSupportService {

    /**
     * 根据渠道号获取渠道信息
     *
     * @param salesChannel
     * @return
     */
    ChannelManageDto findChannelInfoByChannel(String salesChannel);

    /**
     * 返回改期的最大次数
     *
     * @return
     */
    int getMaxRescheduleTimes();

    /**
     * 获取机场信息
     *
     * @param airportCode
     * @return
     */
    AirportDto getAirport(String airportCode);

    /**
     * 获取EC渠道
     *
     * @param channelCode
     * @return
     */
    ChannelManageDto findEcChannelByChannel(Long channelCode);

    /**
     * 判断航段是否国际航段
     *
     * @param depAirPort
     * @param arrAirPort
     * @return
     */
    Boolean vfyInteaAirlineByAirportCode(String depAirPort, String arrAirPort);

    /**
     * 查询结算信息
     *
     * @return
     */
    Map<String, IataInfo> findUniFndConfigByCode();

    /**
     * 通过机场获取国家代号
     *
     * @param arrAirp
     * @return
     */
    String queryAirpCity(String arrAirp);

    /**
     * 获取航段中属于北美航段的
     *
     * @param pnrSegmentDto
     * @return
     */
    Boolean vfyNAAirlineByAirportCode(CreatePnrSegmentDto pnrSegmentDto);
}
